unit32为IQ信号转换成两路uint16信号

您所在的位置:网站首页 matlab uint32转成uint16 unit32为IQ信号转换成两路uint16信号

unit32为IQ信号转换成两路uint16信号

2023-04-02 20:25| 来源: 网络整理| 查看: 265

IQ数据为uint32,低16bit为I路,高16bit为Q路,在此进行拆分

Q_int16 = typecast((bitshift(IQ,-16)),'int16'); I_int16 = typecast(bitand(IQ,uint32(65535)),'int16');

解释:

bitshift

intout = bitshift(A,k) 返回向左偏移 k 位的 A,这等效于乘以 2^k。k 的负值与向右移位或除以 2^|k| 并向负无穷舍入到最接近的整数相对应。将截断任何溢出位。

如果 A 是有符号的整数数组,则 bitshift 返回算数偏移结果,并在 k 为负时保留有符号的位,k 为正时不保留有符号的位。

如果 k 为正,MATLAB将位左移,并在右侧插入 k 0 位。

如果 k 为负,并且 A 为非负,MATLAB 将位右移,并在左侧插入 |k| 0 位。

如果 k 为负,并且 A 为负,MATLAB 将位右移,并在左侧插入 |k| 1 位。

因此bitshift(IQ,-16)表示将32为的IQ信号右移16位,并在左侧插入16位0。

typecast

Y = typecast(X,type) 将 X 的位模式转换为 type 指定的数据类型,而不更改基础数据。X 必须为由非复数数值组成的满标量或满向量。

因此使用 typecast 将 bitshift(IQ,-16)转换为16位无符号整数。每个 32 位值划分为2个 16位段。

bitand

C = bitand(A,B) 返回 A 和 B 的按位 AND。因此将IQ信号与uint32(65535)相与即可得到低16位的数据。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3